package org.jeecg.modules.supplier.Vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.file.entity.ProcurementFile;
import org.jeecg.modules.message.entity.ProcurementMessage;
import org.jeecg.modules.supplier.entity.qualification;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Column;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@ApiModel(value = "SupplierVo对象", description = "供应商信息Vo")
public class SupplierVo implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    private String id;

    @ApiModelProperty(value = "公司名称")
    @NotBlank(message = "公司名称不能为空")
    private String companyName;

    @ApiModelProperty(value = "统一社会信用代码")
    @NotBlank(message = "统一社会信用代码不能为空")
    private String creditCode;

    @ApiModelProperty(value = "成立日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date establishDate;

    @ApiModelProperty(value = "注册资本")
    private BigDecimal registeredCapital;

    @ApiModelProperty(value = "公司地址")
    private String companyAddress;

    @ApiModelProperty(value = "经营范围")
    private String businessScope;

    @ApiModelProperty(value = "工程类目，多个用逗号分隔")
    private String engineeringCategories;

    @ApiModelProperty(value = "资质列表")
    private List<qualification> qualifications;

//    @ApiModelProperty(value = "资质名称")
//    private String qualificationName;
//
//    @ApiModelProperty(value = "资质等级")
//    private String qualificationLevel;

    @ApiModelProperty(value = "联系人姓名")
    private String contactName;

    @ApiModelProperty(value = "联系人手机")
    private String contactPhone;

    @ApiModelProperty(value = "联系人邮箱")
    private String contactEmail;

    @ApiModelProperty(value = "联系人角色：1-法人，2-财务联系人，3-业务联系人")
    @Dict(dicCode = "contact_role")
    private String contactRole;

    @ApiModelProperty(value = "开户行")
    private String bankName;

    @ApiModelProperty(value = "开户名")
    private String accountName;

    @ApiModelProperty(value = "银行账号")
    private String accountNumber;


    @ApiModelProperty(value = "附件路径")
    private String attachments;

    @ApiModelProperty(value = "文件数组")
    private List<ProcurementFile> procurementFile;

    @ApiModelProperty(value = "审核状态：0-待审核，1-审核通过，2-退回补正，3-拒绝")
    private String auditStatus;

    @ApiModelProperty(value = "更新人")
    private String updateBy;
    @ApiModelProperty(value = "审核记录")
    private List<org.jeecg.modules.message.entity.ProcurementMessage> ProcurementMessage;

}
